iT邦幫忙

2022 iThome 鐵人賽

DAY 2
0

今日目標

  • 了解宣告式程式設計(Declarative Programming)與指令式程式設計(Imperative Programming)的差異
  • 用 Compose UI 寫一個簡單的Project來玩玩

Declarative vs Imperative

和Java、C++、PHP、Swift 與 C# 一樣, Kotlin 一直是一個指令式程式( Imperative Programming )語言。 Android Jetpack Compose 是一個宣告式 UI 框架( Declarative UI Framework ),可以讓開發者以宣告式的方式來建立 UI。維基百科裡有解釋這兩個名詞:

維基百科的定義

指令式程式設計與宣告式程式設計的不同之處為何呢?

宣告式程式設計(英語:Declarative programming)或譯為宣告式程式設計,是對與指令式程式設計不同的程式設計範型的一種合稱。它們建造電腦程式的結構和元素,表達計算的邏輯而不用描述它的控制流程。

宣告式程式設計通常被定義為除指令式以外的任何程式設計範式。同時存在一些其他的定義,簡單的將宣告式程式設計和指令式程式設計做對比,例如:

  • 告訴電腦需要計算「什麼」而不是「如何」去計算的進階程式。
  • 明確的對應數理邏輯的程式語言[4]。
  • 任何沒有副作用的程式語言,或者更確切一點,任何參照透明的程式語言。

簡單來說:

  • 命令式:告訴電腦如何做(HOW)來得到我們想要的結果(WHAT)
  • 宣告式:告訴電腦我們想要的結果(WHAT),讓電腦決定如何做(HOW)

沒有程式設計的朋友們,可能很難理解,舉個生活上點牛排例子來看好了,一般來說我們到了餐廳只需要和服務生說要吃什麼牛排以及幾分熟就好了,不需要告訴他們煎牛排的每一個步驟。這就是宣告式與命令式的差別,如下表:
declarative

寫程式囉

  1. 打開 Android Studio 建立一個新 Project 並且選擇 [Empty Compose Activity], 如下圖:
    new_project

  2. 看一下 Project:程式碼、Preview Panel, 如下圖:
    look_project

  3. 我們改一下 TextView 的大小、Style 以及 Color:

    Text(text = "Hello $name!",
        color = Color.Blue,
        fontStyle = FontStyle.Italic,
        fontSize = 30.sp
    )
  1. 輕輕鬆鬆就變成你想要的樣子了:
    change_text

範例連結:
https://github.com/hakka1/ithelp-14th/tree/main/examples/example-day2

今天就到這邊啦~ 明天見!


上一篇
[Day1] 為什麼要學 Android Jetpack Compose (Compose UI)
下一篇
[Day3] Compose 主題顏色變變變
系列文
30天 Android Jetpack Compose 奇幻旅程13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言